package com.xiao.leetcode;

import java.util.HashSet;
import java.util.Set;

/**
 * 数组中是否存在重复元素
 * 给定一个整数数组，判断是否存在重复元素。
 *
 * 如果存在一值在数组中出现至少两次，函数返回 true 。如果数组中每个元素都不相同，则返回 false 。
 */
public class Part217 {

    public static void main(String[] args) {
        Part217 part217 = new Part217();
        System.out.println(part217.containsDuplicate(new int[]{1,2,3,4}));
    }

    /**
     * 判断数组中是否有重复元素
     * 1, 暴力解题
     */
    public boolean containsDuplicate(int[] nums) {
        int length = nums.length;
        for (int i = 0;i<length;i++){
            for (int j =i+1;j<length;j++){
                if (nums[i]==nums[j]){
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 存放到hashSet 中  然后判断 长度与之前是否相等
     */
    public boolean containsDuplicate2(int[] nums) {
        int length = nums.length;
        Set<Integer> integerSet = new HashSet<>();
        for (int num : nums) {
            integerSet.add(num);
        }
        return length==integerSet.size();
    }


}
